//线索清单表格
var $clueList = $('#clueList');

//防止表头与表格不对齐
$(window).resize(function () {
    $clueList.bootstrapTable('resetView');
});

//初始化线索池公海-线索清单
$(function () {
    clueListInit();

    // 重置表单
    $('#btn-reset').on('click', function () {
        resetSearch.call(this, clueListInit);
    });
    // 高级搜索
    $('#btn-search').on('click', function () {
        //清空普通搜索条件
        $('#companyNameMin').val('');
        search($clueList, queryParams);
    });
    // 简单搜索
    $('#btn-search-simple').on('click', function () {
        search.call(this, $clueList, queryParamsMin);
    });
    //小招专业开发搜索(含联系方式或企业对外座机或企业对外手机的线索--author:yincuimei)
    $('#btn-search-specialized').on('click', function () {
        search($clueList, querySpecializedIndustry);
    } );
});

function clueListInit() {
    //先销毁表格
    $clueList.bootstrapTable('destroy');
    $clueList.bootstrapTable({
        classes: 'table table-hover table-bordered table-striped',
        url: '/clue/pageList',//请求地址
        method: 'post',//请求方式
        contentType: "application/x-www-form-urlencoded",           // 请求内容类型
        dataType: "json",                                           // 数据类型
        striped: true,                                              // 是否显示行间隔色
        sortable: true,                                             // 是否启用排序
        sortOrder: "desc",                                          // 排序方式
        sortName: 'source',                                         // 排序字段
        cache: false,                                               // 是否使用缓存
        showColumns: false,                                         // 显示隐藏列
        showRefresh: false,                                         // 显示刷新按钮
        showToggle: false,                                          // 切换显示样式
        showFooter: false,                                          // 显示Table脚部
        pagination: true,                                           // 是否显示分页
        showPaginationSwitch: false,                                // 是否显示分页按钮
        clickToSelect: false,                                       // 是否启用点击选中行
        singleSelect: false,
        minimumCountColumns: 2,                                     // 最少要显示的列数
        undefinedText: '-',                                          // cell没有值时显示
        sidePagination: "server",                                   // 分页方式：client客户端分页，server服务端分页
        uniqueId: 'clueId',
        idField: 'clueId',
        pageSize: globalPageSize,                                   // 每页的记录行数
        pageNumber: 1,                                              // 初始化加载第1页，默认第1页
        pageList: globalPageList,                                   // 可供选择的每页的行数
        queryParams: queryParams,                                   // 查询参数
        columns: [
            {title: '主键', field: 'clueId', visible: false},
            {title: '联系人电话', field: 'contactPersonPhone', visible: false},
            {title: '企业对外手机', field: 'enterpriseExternalPhone', visible: false,valign: 'middle'},
            {title: '企业对外座机', field: 'enterpriseExternalLandLine', visible: false,valign: 'middle'},
            {title: '序号', field: 'index', align: 'left', valign: 'middle', width: '50', formatter: indexFormat},
            {title: '客户名称', field: 'companyName', align: 'left', valign: 'middle',},
            {title: '线索来源', field: 'source', sortable: true, align: 'left', valign: 'middle'},
            {title: '线索评级', field: 'rating',align: 'left', valign: 'middle', },
            {title: '操作',field: 'operate',align: 'right',events: operateEvents, formatter: genderOpt, width:'30%'}
        ],
        responseHandler: function (result) {
            if (result.code == "000000") {
                var obj = {
                    "rows": result.data,
                    "total": result.totalRecords//总条数
                };
            } else {
                var obj = {
                    "total": 0,
                    "rows": [],
                }
            }
            return obj;
        },
        onLoadSuccess: function () {
            //加载成功时执行
            $("[data-toggle='tooltip']").tooltip();//加这个是为了让操作列的提示图标显示在上方
        },
        onLoadError: function (status) {
            if (status == 403) {
                alert("权限不足！禁止访问！");
            } else {
                //加载失败时执行
                alert("加载失败！");
            }
        },
        formatLoadingMessage: function () {
            return "请稍等，加载中...";
        },
        formatNoMatches: function () {
            return '无符合条件的记录';
        },
    });
}

/**
 * --列表序列号
 */
function indexFormat(value, row, index) {
    return index + 1;
}

/**
 * 拼接线索池表格查询条件参数
 */
function queryParams(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式

    //普通搜索条件
    params.poolId = $('#poolId').val();
    params.companyName = $.trim($('#companyName').val());//公司名称
    params.clueNumber = $.trim($('#clueNumber').val());//线索ID
    params.source = $.trim($('#source').val());//线索来源
    return params;
}
function queryParamsMin(params) {
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式

    //普通搜索条件
    params.poolId = $('#poolId').val();
    params.clueNumber = $.trim($('#clueNumber').val());//线索ID
    params.companyName = $.trim($('#companyNameMin').val());//公司名称
    return params;
}

/**
 * 小专行业开发查询条件
 * @param params
 * @returns {*}
 */
function querySpecializedIndustry(params){
    params.pageSize = params.limit;
    params.pageIndex = (params.offset / params.limit) + 1;
    params.sortName = params.sort; //排序列名
    params.sortOrder = params.order;//排序方式
    params.poolId = $('#poolId').val();//线索池ID
    params.specializedIndustry = "小专行业开发";
    return params;
}


/**
 * 点击客户姓名跳转客户详情页面
 * @param value
 * @param row
 * @param index
 * @returns {string}
 */
function customerNameFormat(value, row, index) {
    if(value == null) {
        return '<span href="JavaScript:void(0);">-</span>';
    }else {
        return '<a href="JavaScript:void(0);" onclick=\'customerDetail(\"'+row.customerId+'")\'>'+value+'</a>';
    }

}

function  customerDetail(customerId) {
    parent.$(parent.document).data('multitabs').create({
        iframe: true,
        title: '客户详情',
        url: "/front/user/customerManager/customerDetail?customerId=" + customerId
    },true);
}


/**
 * 自定义操作列内容
 */
function genderOpt(value, row, index) {
    var html = '<button type="button" id="receive" class="btn btn-default"><i class="mdi mdi-stackoverflow"></i>领取</button>';
    if(row.searchType){
        // html += '<button type="button" class="btn btn-default"><i class="mdi mdi-phone"></i>拨打电话</button>';
        html += '<button type="button" class="btn btn-default" onclick=\'convertToCustomer("'+row.clueId+'")\'><i class="mdi mdi-tumblr-reblog"></i>一键转客户</button>'
    }
    return html;
}


/**
 * 自定义操作列事件
 */
window.operateEvents = {
    //领取
    'click #receive': function (e, value, row, index) {
        receiveClue(row.clueId);
    }
};

/**
 * 线索池公海-线索清单-领取
 */
function receiveClue(clueId) {
    //线索池id
    var poolId = $('#poolId').val();
    $.alert({
        title: '提示',
        content: "确定要领取吗？",
        buttons: {
            confirm: {
                text: '确认',
                btnClass: 'btn-primary',
                action: function () {
                    $.ajax({
                        type: "post",
                        url: "/clue/receiveClue",
                        data: {
                            clueId: clueId,
                            poolId: poolId
                        },
                        dataType: 'json',
                        success: function (data, status) {
                            if (data.code == '000000') {
                              if(data.data.status == true){
                                    $.alert('领取成功!');
                                    $clueList.bootstrapTable('refreshOptions', {pageNumber: 1});
                                }else{
                                    $.alert(data.data.toast);
                                }
                            } else {
                                $.alert(data.message);
                            }
                        },
                        error: function () {
                            $.alert('领取失败，请稍后再试!');
                        }
                    });
                }
            },
            cancel: {
                text: '取消',
                action: function () {
                }
            }
        }
    })
}

//转化为客户
function convertToCustomer(clueId) {
    $.ajax({
        url: '/customerController/convertToCustomer',
        type: 'POST',
        dataType: "json",
        data: {
            clueId : clueId
        },
        success: (function (data) {
            if (data.code == "000000") {
                clueListInit();
                $.alert("转化成功！");
            } else if (data.code == "CF0001") {
                $.alert("这个线索已经转化过客户了!!!");
            } else if (data.code == "CF0002") {
                $.alert("您已经有175个非会员客户了,不能转化客户!!!");
            } else if (data.code == "CF0004") {
                $.alert("客户名称已关联客户,不能转化客户!!!");
            } else if (data.code == "C00030") {
                $.alert("企业客户信息错误,请核实!!!");
            } else {
                alert("保存失败");
            }
        }),
        error: (function () {
            alert("失败");
        })
    });
}